package com.taotao.job.rpc.core.proxy;

import com.taotao.job.rpc.core.invoker.Invoker;

/**
 * 代理工厂
 *
 * @author fanbeibei
 * @date 2020/10/31 0:19
 */
public interface RpcProxyFactory {


    /**
     * 创建代理对象
     *
     * @param ifaceClass 接口
     * @param invoker    执行接口的执行器
     * @param <T>
     * @return
     */
    <T> T newProxyInstance(Class<T> ifaceClass, Invoker invoker);

    /**
     * 创建代理对象
     *
     * @param ifaceClass 接口
     * @param address    ip:port
     * @param <T>
     * @return
     */
    <T> T newProxyInstance(Class<T> ifaceClass, String address);


}
